package model

import (
	"gorm.io/gorm"
	"time"
)

type User struct {
	Id               int            `gorm:"column:id;type:int;primaryKey;not null;" json:"id"`
	Name             string         `gorm:"column:name;type:varchar(50);default:NULL;" json:"name"`
	Nickname         string         `gorm:"column:nickname;type:varchar(50);default:NULL;" json:"nickname"`
	Mobile           string         `gorm:"column:mobile;type:char(11);default:NULL;" json:"mobile"`
	Email            string         `gorm:"column:email;type:varchar(30);default:NULL;" json:"email"`
	Address          string         `gorm:"column:address;type:varchar(50);default:NULL;" json:"address"`
	Set              int8           `gorm:"column:set;type:tinyint;comment:1:男 2:女 ;not null;" json:"set"` // 1:男 2:女
	Age              int            `gorm:"column:age;type:int;default:NULL;" json:"age"`
	LikesNumbers     int            `gorm:"column:likes_numbers;type:int;comment:喜欢数;default:NULL;" json:"likes_numbers"`           // 喜欢数
	NumberOfLikes    int            `gorm:"column:number_of_likes;type:int;comment:点赞数;default:NULL;" json:"number_of_likes"`       // 点赞数
	NumberOfComments int            `gorm:"column:number_of_comments;type:int;comment:评论数;default:NULL;" json:"number_of_comments"` // 评论数
	NumberOfShares   int            `gorm:"column:number_of_shares;type:int;comment:分享数;default:NULL;" json:"number_of_shares"`     // 分享数
	CreateAt         time.Time      `gorm:"column:create_at;type:datetime(3);default:CURRENT_TIMESTAMP(3);" json:"create_at"`
	UpdateAt         time.Time      `gorm:"column:update_at;type:datetime(3);default:CURRENT_TIMESTAMP(3);" json:"update_at"`
	DeleteAt         gorm.DeletedAt `gorm:"column:delete_at;type:datetime(3);default:NULL;" json:"delete_at"`
}

func (u *User) TableName() string {
	return "user"
}
